<template>
  <t-tabs v-model:value="orderDetails.selectedTab" :list="list" />
</template>

<script setup lang="ts">
import { MessagePlugin } from 'tdesign-vue-next';
import { computed, inject, Ref, watch } from 'vue';

import { useDictionaryStore } from '@/store';

// 字典仓库
const dictionaryStore = useDictionaryStore();
// 订单详情
const orderDetails = inject<Ref<Record<string, any>>>('orderDetails');
// 列表
const list = computed(() => {
  const result = [];
  const { currentOrderStage, currentStage, currentSingleStage } = orderDetails.value;
  // 上报阶段
  // if (currentOrderStage === '0') {
  //   result.push({ label: '记录列表', value: '记录列表' });
  // }
  // 上报阶段、设计阶段、审核、施工
  if (currentOrderStage) {
    const designStageOptions = [
      { label: '记录列表', value: '记录列表' },
      { label: '量房信息', value: '量房信息' },
      { label: '方案', value: '方案' },
      { label: '一见', value: '一见' },
      { label: '二见', value: '二见' },
      // { label: '最终预算', value: '最终预算' },
      { label: '合同信息', value: '合同信息' },
      { label: '主材单', value: '主材单' },
      { label: '最终图纸', value: '最终图纸' },
    ];
    
    // 如果有engineeringId，则添加施工结算选项
    if (orderDetails.value.engineeringId) {
      designStageOptions.push({ label: '施工结算', value: '施工结算' });
      designStageOptions.push({ label: '施工节点', value: '施工节点' });
      designStageOptions.push({ label: '施工放样', value: '施工放样' });
    }
    // 是通知，并且有productStage的时候，则添加产品信息
    if(orderDetails.value.isNotice&&orderDetails.value.productStage) {
      designStageOptions.push({ label: '产品量房', value: '产品量房' });
      designStageOptions.push({ label: '产品复测', value: '产品复测' });
      designStageOptions.push({ label: '产品报价', value: '产品报价' });
      designStageOptions.push({ label: '产品合同', value: '产品合同' });
      designStageOptions.push({ label: '产品进度', value: '产品进度' });
    }
    // 是通知
    if(orderDetails.value.isNotice) {
    designStageOptions.push({ label: '验收单', value: '验收单' });
    }
  
    result.push(...designStageOptions);
  }
  // 审批阶段
  // if (currentOrderStage === '2') {
  //   result.push(
  //     { label: '记录列表', value: '记录列表' },
  //     { label: '合同信息', value: '合同信息' },
  //     { label: '预算复核', value: '预算复核' },
  //     { label: '材料分析', value: '材料分析' },
  //     { label: '人工费用分析', value: '人工费用分析' },
  //   );
  // }
  // 产品阶段
  if (currentStage) {
    result.push(
      { label: '回访记录', value: '回访记录' },
      { label: '设计信息', value: '设计信息' },
      { label: '量房信息', value: '量房信息' },
      { label: '复测信息', value: '复测信息' },
      { label: '产品报价', value: '产品报价' },
      { label: '合同信息', value: '合同信息' },
      { label: '施工节点', value: '施工节点' },
      { label: '产品进度', value: '产品进度' },
    );
  }
  // 单品阶段
  if (currentSingleStage) {
    result.push(
      { label: '回访记录', value: '回访记录' },
      { label: '设计信息', value: '设计信息' },
      { label: '量房信息', value: '量房信息' },
      // { label: '复测信息', value: '复测信息' },
      { label: '单品方案', value: '单品方案' },
      { label: '单品到店', value: '单品到店' },
      { label: '单品合同', value: '单品合同' },
      { label: '产品进度', value: '产品进度' },
    );
  }
  return result;
});
// 设置选中的标签
watch(
  list,
  () => {
    let selectedTab = list.value[0]?.value;
    const { operateType, approveType } = orderDetails.value;
    console.log(operateType,'operateType');
    console.log(approveType,'approveType');
    
    if (operateType) {
      let operateTypeConfig = { tab: '' };
      try {
        const operateTypeDictionary: Record<string, any> =
          dictionaryStore.get('decoration_order_operate_type').find((item) => item.value === operateType) || {};
        operateTypeConfig = JSON.parse(operateTypeDictionary.remark);
        if (operateTypeConfig.tab) selectedTab = operateTypeConfig.tab;
      } catch {
        MessagePlugin.warning('解析操作配置失败，请联系管理员。');
      }
    } else if (approveType) {
      let approveTypeConfig = { tab: '' };
      try {
        const approveTypeDictionary: Record<string, any> =
          dictionaryStore.get('order_approval_type').find((item) => item.value === approveType) || {};
        approveTypeConfig = JSON.parse(approveTypeDictionary.remark);
        console.log(approveTypeDictionary,'approveTypeDictionary');
        console.log(approveTypeConfig,'approveTypeConfig');
        
        if (approveTypeConfig.tab) selectedTab = approveTypeConfig.tab;
      } catch {
        MessagePlugin.warning('解析审批配置失败，请联系管理员。');
      }
    }
    orderDetails.value.selectedTab = selectedTab;
  },
  { immediate: true },
);
</script>
